home *** CD-ROM | disk | FTP | other *** search
/ Programmer Power Tools / Programmer Power Tools.iso / rbbs_pc / 173_asm.arc / RBBSML.ASM < prev    next >
Assembly Source File  |  1988-02-03  |  3KB  |  52 lines

  1. PAGE 66,132
  2. TITLE RBBS-PC MultiLink Interface Copyright 1985 by D. Thomas Mack
  3. ;--------------------------------------------------------------------;
  4. ;ROUTINE: RBBSML              AUTHOR:  D. Thomas Mack                ;
  5. ;                                      10210 Oxfordshire Road        ;
  6. ;                                      Great Falls, Virginia  22066  ;
  7. ;                                                                    ;
  8. ;DATE:  October 7, 1985       VERSION: 1.0                           ;       
  9. ;                                                                    ;
  10. ;FUNCTION: This routine supports calls from the IBM (MICROSOFT)      ;
  11. ;          BASIC Version 2.0 or Microsoft Quick BASIC Version 1.0    ;
  12. ;          compilers to the MultiLink User Interface.  The call is:  ;
  13. ;                                                                    ;
  14. ;            CALL RBBSML (AX%,BX%)                                   ;
  15. ;                                                                    ;
  16. ;          where AX% and BX% are 16-bit binary data items (i.e.      ;
  17. ;          integer variables) and should be set for the desired      ;
  18. ;          function as described in the MultiLink manual.            ;
  19. ;                                                                    ;
  20. ;          The value for AX, as defined in your MultiLink manual,    ;
  21. ;          should be computed as                                     ;
  22. ;                                                                    ;
  23. ;             AX% = 256*function-code + value-for-AL                 ;
  24. ;                                                                    ;
  25. ;          and similarly BX% should be computed as                   ;
  26. ;                                                                    ;
  27. ;             BX% = value-for-BX                                     ;
  28. ;                                                                    ;
  29. ;          as shown in the MultiLink manual for BASIC programs.      ;
  30. ;          for Basic programs.  A MultiLink "status code" is         ;
  31. ;          returned in AX%.                                          ;
  32. ;--------------------------------------------------------------------;
  33. RBBS_MLTI SEGMENT BYTE PUBLIC 'CODE'
  34.           ASSUME CS:RBBS_MLTI
  35.           PUBLIC RBBSML
  36. RBBSML    PROC   FAR           ;LONG CALL
  37.           PUSH   BP            ;SAVE CALLERS BASE POINTER REGISTER -- BP 
  38.           MOV    BP,SP         ;SETUP TO ADDRESS OFF OF BASE POINTER REGISTER
  39.           MOV    DI,[BP]+8     ;GET ADDRESS OF AX% PARAMETER
  40.           MOV    AX,[DI]       ;PUT VALUE IN AX REGISTER
  41.           MOV    DI,[BP]+6     ;GET ADDRESS OF BX% PARAMETER
  42.           MOV    BX,[DI]       ;PUT VALUE IN BX REGISTER
  43.           INT    7FH           ;CALL MultiLink USER INTERFACE
  44.           MOV    DI,[BP]+8     ;GET ADDRESS OF AX% PARAMETER
  45.           XOR    AH,AH         ;CLEAR GARBAGE IN AH REGISTER
  46.           MOV    [DI],AX       ;PUT RETURN CODE IN AX% PARAMETER
  47.           POP    BP            ;RESTORE CALLERS BASE POINTER REGISTER-- BP
  48.           RET    4             ;RETURN AND REMOVE THE 2 PARAMETERS FROM STACK
  49. RBBSML    ENDP
  50. RBBS_MLTI ENDS
  51.           END
  52.